package mapper;

import bean.*;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.util.List;

public interface IStudentMapper {


    /**
     * 动态条件分页查询当前页的数据
     *
     * @param start     起始记录数
     * @param pageSize  每页显示记录数
     * @param name      学生姓名
     * @param className 班级名称
     * @param roomAddr  房间地址
     * @return 学生分页对象
     */
    public List<StudentBean> cutByItemList(@Param("start") int start,
                                           @Param("pageSize") int pageSize,
                                           @Param("name") String name,
                                           @Param("className") String className,
                                           @Param("roomAddr") String roomAddr);

    /**
     * 动态条件分页查询总记录数
     *
     * @param name      学生姓名
     * @param className 班级名称
     * @param roomAddr  房间地址
     * @return 总记录数
     */
    public int cutByItemCount(@Param("name") String name,
                              @Param("className") String className,
                              @Param("roomAddr") String roomAddr);

    /**
     * 按学生编号查询该学生信息，同时查询该学生所在房间地址和班级名称
     *
     * @param studentId 学生编号
     * @return 学生对象
     */
    StudentBean findById(int studentId);

    /**
     * 添加学生
     *
     * @param student
     */
    void add(@Param("student") StudentBean student,
             @Param("classId") Integer classId,
             @Param("roomId") Integer roomId);

    /**
     * 按学生编号删除学生
     *
     * @param studentId
     */
    void delete(int studentId);


    /**
     * 按学生编号修改房间
     *
     * @param studentId 学生编号
     * @param roomId    房间id
     */
    void updateAddr(@Param("studentId") Integer studentId,
                    @Param("roomId") Integer roomId);


}
